This application, and the innovations and related subject matter disclosed herein, (collectively referred to as the “disclosure”) generally concern systems for procedurally generating maps of artificial terrain from noise maps, and associated techniques. More particularly but not exclusively, disclosed systems and associated techniques pertain to generating terrain maps on a tile-by-tile basis from smoothly varying noise. As but one example, disclosed systems and techniques can generate a composite terrain map on a tile-by-tile basis from a base (or selection) noise map and a selected plurality of one or more terrain images, one or more gradients, and/or one or more other noise maps. Some disclosed systems can retain full-scale details of composited gradients and other noise maps. As well, some disclosed systems can load visible portions of a terrain map, and adjacent buffered portions of the terrain map, into active memory to efficiently allow continuous rendering of terrain as a player navigates past an edge of visible terrain.
By way of background, noise maps can be used to generate artificial terrain as for games. A noise map, generally, is a collection of randomly or pseudo-randomly selected numbers. Noise maps can have one or more dimensions. For example, a one-dimensional array populated with a collection of randomly or pseudo-randomly selected numbers constitutes a 1-D noise map, a two dimensional matrix populated with a collection of randomly or pseudo-randomly selected numbers constitutes a 2-D noise map, etc.
Noise maps having adjacent entries correlated with each other can ensure a smooth variation within the noise map. Such smoothly varying noise maps can be particularly well-suited for use in generating artificial terrain maps, as for games, and generally are referred to in the art as being “coherent”. As but one example of generating terrain from a noise map, each value in a one-dimensional (1-D) noise map can be scaled to correspond to a height. Thus, a 1-D noise map can be used to generate a cross-sectional hill profile, or a two-dimensional (2-D) noise map can be used to generate mountains and valleys in three-space.
Some games provide a 2-D plan view of terrain, as from above (e.g., as indicated by the contours in FIG. 9). Many such games assemble a mosaic of standard tiles, or standard-sized images, over a visible playing area to generate a map of terrain. For example, a collection of various shades of blue tiles can be assembled together to illustrate a region of water. A collection of various shades of brown and beige tiles can be assembled together to illustrate a region of sand, dirt, or other arid region. Similarly, a collection of various shades of green tiles can be assembled together to illustrate a region of forest, or grass.
A so-called “tile set” generally refers to a collection of tiles available to use in a mosaic to generate a terrain map. Complex tile maps can be created even when reusing tiles within a given set, yet the ability to reuse tiles within a set can reduce the amount of system memory required to generate and/or display a map since tiles can be reused multiple times. Tile maps can also reduce the amount of artwork needed for a given map in relation to generating a comprehensive map, since many different tile maps can be created from a single tile set. However, assembling a mosaic of tiles can be difficult and time consuming.
Thus, a need remains for computationally efficient systems and associated techniques to procedurally generate terrain maps. As well, a need remains for approaches for procedurally generating terrain maps with small amounts of stored data.